package com.shujia.day09;

public class C05String {
    public static void main(String[] args) {
        String s = "hello";
        System.out.println(s.hashCode());
        s += "world";
        System.out.println(s.hashCode());
        System.out.println(s);  // 字符串可以通过 + 去拼接


        System.out.println("========================================");
//        String s1 = new String("hello");
//        String s2 = new String("hello");
//        System.out.println(s1==s2);  // false
//        System.out.println(s1.equals(s2)); // true
//
//        String s3 = new String("hello");
//        String s4 = "hello";
//        System.out.println(s3==s4);  // false
//        System.out.println(s3.equals(s4)); // true
//
//        String s5 = "hello";
//        String s6 = "hello";
//        System.out.println(s5==s6); //true
//        System.out.println(s5.equals(s6)); // true


        System.out.println("+++++++++++++++++++++");

        String s1 = "hello";
        String s2 = "world";
        String s3 = "helloworld";
        System.out.println(s3 == s1 + s2); // false  两个变量进行相加，那么会在堆内存 常量池外创建一个 String类型的对象 将结果保存为其对象
        System.out.println(s3 == "hello" + "world"); // true  两个常量进行相加，那么会将结果 保存在常量池中的 helloworld相同位置，所以地址值是相同的
        System.out.println(s3.equals(s1 + s2)); //true


    }
}
